/**
 * Copyright ©2003~2019年3月12日 szkingdom
 * @author raohj
 * @date 2019年3月12日
 * @file RException.java
 * @comment : please input your comment to this file
 * @version : input version
 * @modify:
 * 		1、 2019年3月12日 由 raohj 新建文件
 */
package com.ccnu.demojava.grammar;

import java.io.IOException;

/**
 * @author raohj
 * @date 2019年3月12日
 * @version 
 * @comment to add your comment
 */
public class RException {
	
	public void openFile() throws IOException, MyException {
		throw new MyException();
	}
	
	public void closeFile() throws MyExceptionBasic{
		throw new MyExceptionBasic("基础异常");
	}
	
	public class MyException extends Exception{
		
	}
	
	public class MyExceptionBasic extends Throwable{
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;

		public MyExceptionBasic(String errMsg) {
			super(errMsg);
		}
	}
	
	public void test() {
		try {
			openFile();
		} catch (IOException | MyException e) {
			// TODO Auto-generated catch block
			System.out.println("抛出错误的异常对象:" + e.getClass().getName());
//			e.printStackTrace();
		}
		
		try {
			closeFile();
		} catch (Exception | MyExceptionBasic e) {
			// TODO: handle exception
			System.out.println("抛出错误的异常对象:" + e.getClass().getName() );
			for(StackTraceElement s : e.getStackTrace()) {
//				System.out.println(s.getClassName() + "|" + s.getClassLoaderName() + "|" + s.getFileName() + "|" + s.getLineNumber());
			}
		}
	}
}
